require "Common/define"
require "Logic/Config"
require "Net/send_Msg"
require "proto/manor/message/ReqManorInfoMessage"
require "proto/manor/message/ReqManorUnlockMessage"
require "proto/manor/message/ReqManorInviteMessage"
require "proto/manor/message/ReqManorAutoInviteMessage"

HeroManorHandler = HeroManorHandler or {};

function HeroManorHandler.GetManorInfoHandler(msg)
    if msg.state == 0 then
        logicMgr.HeroManorManager.setManorInfo(msg.cityId, msg.manorDatas);
    end
end

function HeroManorHandler.GetManorUnlockHandler(msg)
    if msg.state == 0 then
        FireEvent(Config.EventType.FreshManorUnlock);
    end
end

function HeroManorHandler.GetManorInviteHandler(msg)
    if msg.state == 0 then
        FireEvent(Config.EventType.FreshManorInfo);
    end
end

function HeroManorHandler.GetNotifyUpdateModelDataHandler(msg)
    if msg.state == 0 then
        logicMgr.HeroManorManager.setManorInfo(msg.cityId, msg.manorData);
    end
end

function HeroManorHandler.GetManorAutoInviteHandler(msg)
    if msg.state == 0 then
        FireEvent(Config.EventType.FreshManorInfo);
    end
end

function HeroManorHandler.sendReqManorInfoMessage(id)
    local req = ReqManorInfoMessage.New();
    req.cityId = id;
    sendReqMessage(req);
end

function HeroManorHandler.sendManorUnlockMessage(id, index)
    local req = ReqManorUnlockMessage.New();
    req.unlockId = index;
    req.cityId = id;
    sendReqMessage(req);
end

function HeroManorHandler.sendReqManorInviteMessage(id, index, inviteIds)
    local req = ReqManorInviteMessage.New();
    req.modelId = index;
    req.cityId = id;
    req.inviteIds = inviteIds;
    sendReqMessage(req);
end

function HeroManorHandler.sendManorAutoInviteMessage(id, index, state)
    local req = ReqManorAutoInviteMessage.New();
    req.modelId = index;
    req.cityId = id;
    req.selectHigh = state;
    sendReqMessage(req);
end